package first.forHuaWei;

import java.util.LinkedHashMap;
import java.util.Map;


public class Lru {
    // 基于LinkedHashMap
    static Map<Integer, Integer> map;
    static int cap;


    public Lru(int capacity) {
        this.map = new LinkedHashMap<>();
        this.cap = capacity;
    }

    // lru中有得删除，重新加入队首
    public int get(int key) {
        if (!map.containsKey(key)) {
            return -1;
        }
        int value = map.remove(key);
        map.put(key, value);
        return value;
    }

    // 要判断LRU队列是否已满
    public void put(int key, int value) {
        if (map.containsKey(key)) {
            map.remove(key);
            map.put(key, value);
            return;
        }
        map.put(key, value);
        if (map.size() > cap) {
            map.remove(map.entrySet().iterator().next().getKey());
        }
    }
}
